namespace DotNetNuke.Services.Search
{
    using DotNetNuke.Framework;
    using System;

    public abstract class SearchDataStoreProvider
    {
        private static SearchDataStoreProvider objProvider = null;

        static SearchDataStoreProvider()
        {
            CreateProvider();
        }

        private static void CreateProvider()
        {
            objProvider = (SearchDataStoreProvider) Reflection.CreateObject("searchDataStore");
        }

        public abstract SearchResultsInfoCollection GetSearchItems(int PortalID, int TabID, int ModuleID);
        public abstract SearchResultsInfoCollection GetSearchResults(int PortalID, string Criteria);
        public static SearchDataStoreProvider Instance()
        {
            return objProvider;
        }

        public abstract void StoreSearchItems(SearchItemInfoCollection SearchItems);
    }
}

